package com.example.obs.dao;

import com.example.obs.model.domin.Permission;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

/**
 * 权限表
 * @author Kevin
 * @date 2020-09-28 15:39
 */
@Repository
public interface PermissionMapper {

    /**
     * 根据文件id和部门id查询权限，不存在则返回文件默认权限
     * @param fileId 文件id
     * @param departmentId 部门id
     * @return 权限值
     **/
    Integer selectPermissionByFileIdAndDepartmentId(@Param("fileId") Integer fileId, @Param("departmentId") Integer departmentId);

    /**
     * 根据文件id和部门id查询权限记录
     * @param fileId 文件id
     * @param departmentId 部门id
     * @return 权限对象
     **/
    Permission selectRecordByFileIdAndDepartmentId(@Param("fileId") Integer fileId, @Param("departmentId") Integer departmentId);

    /**
     * 添加记录
     * @param permission 记录对象
     * @return 影响记录数
     **/
    int insert(@Param("permission") Permission permission);

    /**
     * 更新记录
     * @param fileId 文件id
     * @param departmentId 部门id
     * @param permission 权限值
     * @return 影响记录数
     **/
    int updatePermissionByFileIdAndDepartmentId(@Param("fileId") Integer fileId, @Param("departmentId") Integer departmentId, @Param("permission") Integer permission);

    /**
     * 更新默认权限值
     * @param fileId 文件id
     * @param permission 权限值
     * @return 影响记录数
     **/
    void updateFilePermissionById(@Param("fileId") Integer fileId, @Param("permission") Integer permission);

}
